package com.jd.oneday.month3;

/*
 *  实现一个大小固定的有序数组，支持动态增删改操作
 */
public class Day02 {
    //        public int size = 7;
//    public int[] arr = new int[size];
    public int[] arr = {108, 77, 8, 15, 89, 145, 1};
    public int size = 0;

    public static void main(String[] args) {

//        Scanner c = new Scanner(System.in);
//        String s = c.nextLine();
//        System.out.println(s);

        Day02 d = new Day02();
        d.add(18);
        d.del(4);
        d.modify(5, 10);
//        d.sort(d.arr);
    }

    // 增   增加新元素
    public void add(int a) {
        int size = 0;
        if (arr.length == 0 || arr.length > 0) {   //判断数组是否为空
            size = arr.length + 1;   //arr1的长度+1
            int[] arr1 = new int[size];
            arr1[size - 1] = a;   // 新元素增加在末尾
            //   将arr的元素添加到arr1中
            for (int y = 0; y < arr.length; y++) {
                arr1[y] = arr[y];
            }
            arr = arr1;
        }
        System.out.print("添加成功--");
        sort(arr);
    }

    // 删   在index位置的元素
    public void del(int index) {
        if (index < arr.length) {
            size = arr.length;
            for (int i = index + 1; i < arr.length; i++) {
                arr[i - 1] = arr[i];  // 被删除后面的每个元素向前移一位
            }
            size--;   // arr1长度-1
            int[] arr1 = new int[size];
            // 将arr的元素添加到arr1中
            for (int i = 0; i < arr.length - 1; i++) {
                arr1[i] = arr[i];
            }
            arr = arr1;
            System.out.print("删除成功--");
            sort(arr);
        } else {
            System.out.println("删除位置超界了");
        }
    }

    // 改   在index位置修改a元素
    public void modify(int index, int a) {
        if (index < arr.length) {
            arr[index] = a;
            sort(arr);
            System.out.print("修改成功--");
            sort(arr);
        } else {
            System.out.println("修改位置超界了");
        }

    }

    //  冒泡排序
    public void sort(int[] p) {
        for (int i = 0; i <= p.length - 1; i++) {
            for (int j = 0; j <= p.length - 1; j++) {
                if (p[i] < p[j]) {
                    int exchange = 0;
                    exchange = p[j];
                    p[j] = p[i];
                    p[i] = exchange;
                }
            }
        }
        arr = p;
        traverse();
    }

    //  遍历数组
    public void traverse() {
        System.out.println("结果是：");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println();
    }


}


